home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Components.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  19.4 KB  |  517 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Components.p
  3.  
  4.      Contains:    Component Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1991-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Components;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __COMPONENTS__}
  27. {$SETC __COMPONENTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ComponentsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __ERRORS__}
  34. {$I Errors.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MACTYPES__}
  37. {$I MacTypes.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __MIXEDMODE__}
  40. {$I MixedMode.p}
  41. {$ENDC}
  42.  
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49. CONST
  50.     kAppleManufacturer            = 'appl';                        {  Apple supplied components  }
  51.     kComponentResourceType        = 'thng';                        {  a components resource type  }
  52.     kComponentAliasResourceType    = 'thga';                        {  component alias resource type  }
  53.  
  54.     kAnyComponentType            = 0;
  55.     kAnyComponentSubType        = 0;
  56.     kAnyComponentManufacturer    = 0;
  57.     kAnyComponentFlagsMask        = 0;
  58.  
  59.     cmpWantsRegisterMessage        = $80000000;
  60.  
  61.     kComponentOpenSelect        = -1;                            {  ComponentInstance for this open  }
  62.     kComponentCloseSelect        = -2;                            {  ComponentInstance for this close  }
  63.     kComponentCanDoSelect        = -3;                            {  selector # being queried  }
  64.     kComponentVersionSelect        = -4;                            {  no params  }
  65.     kComponentRegisterSelect    = -5;                            {  no params  }
  66.     kComponentTargetSelect        = -6;                            {  ComponentInstance for top of call chain  }
  67.     kComponentUnregisterSelect    = -7;                            {  no params  }
  68.     kComponentGetMPWorkFunctionSelect = -8;                        {  some params  }
  69.  
  70. { Component Resource Extension flags }
  71.     componentDoAutoVersion        = $01;
  72.     componentWantsUnregister    = $02;
  73.     componentAutoVersionIncludeFlags = $04;
  74.     componentHasMultiplePlatforms = $08;
  75.     componentLoadResident        = $10;
  76.  
  77.  
  78.  
  79. { Set Default Component flags }
  80.     defaultComponentIdentical    = 0;
  81.     defaultComponentAnyFlags    = 1;
  82.     defaultComponentAnyManufacturer = 2;
  83.     defaultComponentAnySubType    = 4;
  84.     defaultComponentAnyFlagsAnyManufacturer = 3;
  85.     defaultComponentAnyFlagsAnyManufacturerAnySubType = 7;
  86.  
  87. { RegisterComponentResource flags }
  88.     registerComponentGlobal        = 1;
  89.     registerComponentNoDuplicates = 2;
  90.     registerComponentAfterExisting = 4;
  91.     registerComponentAliasesOnly = 8;
  92.  
  93.  
  94.  
  95. TYPE
  96.     ComponentDescriptionPtr = ^ComponentDescription;
  97.     ComponentDescription = RECORD
  98.         componentType:            OSType;                                    {  A unique 4-byte code indentifying the command set  }
  99.         componentSubType:        OSType;                                    {  Particular flavor of this instance  }
  100.         componentManufacturer:    OSType;                                    {  Vendor indentification  }
  101.         componentFlags:            UInt32;                                    {  8 each for Component,Type,SubType,Manuf/revision  }
  102.         componentFlagsMask:        UInt32;                                    {  Mask for specifying which flags to consider in search, zero during registration  }
  103.     END;
  104.  
  105.  
  106.     ResourceSpecPtr = ^ResourceSpec;
  107.     ResourceSpec = RECORD
  108.         resType:                OSType;                                    {  4-byte code   }
  109.         resID:                    INTEGER;                                {                }
  110.     END;
  111.  
  112.     ComponentResourcePtr = ^ComponentResource;
  113.     ComponentResource = RECORD
  114.         cd:                        ComponentDescription;                    {  Registration parameters  }
  115.         component:                ResourceSpec;                            {  resource where Component code is found  }
  116.         componentName:            ResourceSpec;                            {  name string resource  }
  117.         componentInfo:            ResourceSpec;                            {  info string resource  }
  118.         componentIcon:            ResourceSpec;                            {  icon resource  }
  119.     END;
  120.  
  121.     ComponentResourceHandle                = ^ComponentResourcePtr;
  122.     ComponentPlatformInfoPtr = ^ComponentPlatformInfo;
  123.     ComponentPlatformInfo = RECORD
  124.         componentFlags:            LONGINT;                                {  flags of Component  }
  125.         component:                ResourceSpec;                            {  resource where Component code is found  }
  126.         platformType:            INTEGER;                                {  gestaltSysArchitecture result  }
  127.     END;
  128.  
  129.     ComponentResourceExtensionPtr = ^ComponentResourceExtension;
  130.     ComponentResourceExtension = RECORD
  131.         componentVersion:        LONGINT;                                {  version of Component  }
  132.         componentRegisterFlags:    LONGINT;                                {  flags for registration  }
  133.         componentIconFamily:    INTEGER;                                {  resource id of Icon Family  }
  134.     END;
  135.  
  136.     ComponentPlatformInfoArrayPtr = ^ComponentPlatformInfoArray;
  137.     ComponentPlatformInfoArray = RECORD
  138.         count:                    LONGINT;
  139.         platformArray:            ARRAY [0..0] OF ComponentPlatformInfo;
  140.     END;
  141.  
  142.     ExtComponentResourcePtr = ^ExtComponentResource;
  143.     ExtComponentResource = RECORD
  144.         cd:                        ComponentDescription;                    {  registration parameters  }
  145.         component:                ResourceSpec;                            {  resource where Component code is found  }
  146.         componentName:            ResourceSpec;                            {  name string resource  }
  147.         componentInfo:            ResourceSpec;                            {  info string resource  }
  148.         componentIcon:            ResourceSpec;                            {  icon resource  }
  149.         componentVersion:        LONGINT;                                {  version of Component  }
  150.         componentRegisterFlags:    LONGINT;                                {  flags for registration  }
  151.         componentIconFamily:    INTEGER;                                {  resource id of Icon Family  }
  152.         count:                    LONGINT;                                {  elements in platformArray  }
  153.         platformArray:            ARRAY [0..0] OF ComponentPlatformInfo;
  154.     END;
  155.  
  156.     ComponentAliasResourcePtr = ^ComponentAliasResource;
  157.     ComponentAliasResource = RECORD
  158.         cr:                        ComponentResource;                        {  Registration parameters  }
  159.         aliasCD:                ComponentDescription;                    {  component alias description  }
  160.     END;
  161.  
  162. {  Structure received by Component:        }
  163.     ComponentParametersPtr = ^ComponentParameters;
  164.     ComponentParameters = PACKED RECORD
  165.         flags:                    UInt8;                                    {  call modifiers: sync/async, deferred, immed, etc  }
  166.         paramSize:                UInt8;                                    {  size in bytes of actual parameters passed to this call  }
  167.         what:                    INTEGER;                                {  routine selector, negative for Component management calls  }
  168.         params:                    ARRAY [0..0] OF LONGINT;                {  actual parameters for the indicated routine  }
  169.     END;
  170.  
  171.     ComponentRecordPtr = ^ComponentRecord;
  172.     ComponentRecord = RECORD
  173.         data:                    ARRAY [0..0] OF LONGINT;
  174.     END;
  175.  
  176.     Component                            = ^ComponentRecord;
  177.     ComponentInstanceRecordPtr = ^ComponentInstanceRecord;
  178.     ComponentInstanceRecord = RECORD
  179.         data:                    ARRAY [0..0] OF LONGINT;
  180.     END;
  181.  
  182.     ComponentInstance                    = ^ComponentInstanceRecord;
  183.     RegisteredComponentRecordPtr = ^RegisteredComponentRecord;
  184.     RegisteredComponentRecord = RECORD
  185.         data:                    ARRAY [0..0] OF LONGINT;
  186.     END;
  187.  
  188.     RegisteredComponentInstanceRecordPtr = ^RegisteredComponentInstanceRecord;
  189.     RegisteredComponentInstanceRecord = RECORD
  190.         data:                    ARRAY [0..0] OF LONGINT;
  191.     END;
  192.  
  193.     ComponentResult                        = LONGINT;
  194.  
  195. CONST
  196.     platform68k                    = 1;                            {  platform type (response from gestaltSysArchitecture)  }
  197.     platformPowerPC                = 2;
  198.     platformInterpreted            = 3;
  199.     platformWin32                = 4;
  200.  
  201.     mpWorkFlagDoWork            = $01;
  202.     mpWorkFlagDoCompletion        = $02;
  203.     mpWorkFlagCopyWorkBlock        = $04;
  204.     mpWorkFlagDontBlock            = $08;
  205.     mpWorkFlagGetProcessorCount    = $10;
  206.     mpWorkFlagGetIsRunning        = $40;
  207.  
  208.  
  209. TYPE
  210.     ComponentMPWorkFunctionHeaderRecordPtr = ^ComponentMPWorkFunctionHeaderRecord;
  211.     ComponentMPWorkFunctionHeaderRecord = RECORD
  212.         headerSize:                UInt32;
  213.         recordSize:                UInt32;
  214.         workFlags:                UInt32;
  215.         processorCount:            UInt16;
  216.         unused:                    SInt8;
  217.         isRunning:                SInt8;
  218.     END;
  219.  
  220. {$IFC TYPED_FUNCTION_POINTERS}
  221.     ComponentMPWorkFunctionProcPtr = FUNCTION(globalRefCon: UNIV Ptr; header: ComponentMPWorkFunctionHeaderRecordPtr): ComponentResult;
  222. {$ELSEC}
  223.     ComponentMPWorkFunctionProcPtr = ProcPtr;
  224. {$ENDC}
  225.  
  226. {$IFC TYPED_FUNCTION_POINTERS}
  227.     ComponentRoutineProcPtr = FUNCTION(VAR cp: ComponentParameters; componentStorage: Handle): ComponentResult;
  228. {$ELSEC}
  229.     ComponentRoutineProcPtr = ProcPtr;
  230. {$ENDC}
  231.  
  232.     ComponentMPWorkFunctionUPP = UniversalProcPtr;
  233.     ComponentRoutineUPP = UniversalProcPtr;
  234. {
  235.     The parameter list for each ComponentFunction is unique. It is
  236.     therefore up to users to create the appropriate procInfo for their
  237.     own ComponentFunctions where necessary.
  238. }
  239.     ComponentFunctionUPP                = UniversalProcPtr;
  240.  
  241. {*******************************************************
  242. *                                                        *
  243. *                  APPLICATION LEVEL CALLS                    *
  244. *                                                        *
  245. *******************************************************}
  246. {*******************************************************
  247. * Component Database Add, Delete, and Query Routines
  248. *******************************************************}
  249. FUNCTION RegisterComponent(VAR cd: ComponentDescription; componentEntryPoint: ComponentRoutineUPP; global: INTEGER; componentName: Handle; componentInfo: Handle; componentIcon: Handle): Component;
  250.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  251.     INLINE $7001, $A82A;
  252.     {$ENDC}
  253. FUNCTION RegisterComponentResource(cr: ComponentResourceHandle; global: INTEGER): Component;
  254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  255.     INLINE $7012, $A82A;
  256.     {$ENDC}
  257. FUNCTION UnregisterComponent(aComponent: Component): OSErr;
  258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  259.     INLINE $7002, $A82A;
  260.     {$ENDC}
  261. FUNCTION FindNextComponent(aComponent: Component; VAR looking: ComponentDescription): Component;
  262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  263.     INLINE $7004, $A82A;
  264.     {$ENDC}
  265. FUNCTION CountComponents(VAR looking: ComponentDescription): LONGINT;
  266.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  267.     INLINE $7003, $A82A;
  268.     {$ENDC}
  269. FUNCTION GetComponentInfo(aComponent: Component; VAR cd: ComponentDescription; componentName: Handle; componentInfo: Handle; componentIcon: Handle): OSErr;
  270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  271.     INLINE $7005, $A82A;
  272.     {$ENDC}
  273. FUNCTION GetComponentListModSeed: LONGINT;
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $7006, $A82A;
  276.     {$ENDC}
  277. FUNCTION GetComponentTypeModSeed(componentType: OSType): LONGINT;
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $702C, $A82A;
  280.     {$ENDC}
  281. {*******************************************************
  282. * Component Instance Allocation and dispatch routines
  283. *******************************************************}
  284. FUNCTION OpenAComponent(aComponent: Component; VAR ci: ComponentInstance): OSErr;
  285.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  286.     INLINE $702D, $A82A;
  287.     {$ENDC}
  288. FUNCTION OpenComponent(aComponent: Component): ComponentInstance;
  289.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  290.     INLINE $7007, $A82A;
  291.     {$ENDC}
  292. FUNCTION CloseComponent(aComponentInstance: ComponentInstance): OSErr;
  293.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  294.     INLINE $7008, $A82A;
  295.     {$ENDC}
  296. FUNCTION GetComponentInstanceError(aComponentInstance: ComponentInstance): OSErr;
  297.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  298.     INLINE $700A, $A82A;
  299.     {$ENDC}
  300. {*******************************************************
  301. *                                                        *
  302. *                      CALLS MADE BY COMPONENTS              *
  303. *                                                        *
  304. *******************************************************}
  305. {*******************************************************
  306. * Component Management routines
  307. *******************************************************}
  308. PROCEDURE SetComponentInstanceError(aComponentInstance: ComponentInstance; theError: OSErr);
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $700B, $A82A;
  311.     {$ENDC}
  312. FUNCTION GetComponentRefcon(aComponent: Component): LONGINT;
  313.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  314.     INLINE $7010, $A82A;
  315.     {$ENDC}
  316. PROCEDURE SetComponentRefcon(aComponent: Component; theRefcon: LONGINT);
  317.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  318.     INLINE $7011, $A82A;
  319.     {$ENDC}
  320. FUNCTION OpenComponentResFile(aComponent: Component): INTEGER;
  321.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  322.     INLINE $7015, $A82A;
  323.     {$ENDC}
  324. FUNCTION OpenAComponentResFile(aComponent: Component; VAR resRef: INTEGER): OSErr;
  325.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  326.     INLINE $702F, $A82A;
  327.     {$ENDC}
  328. FUNCTION CloseComponentResFile(refnum: INTEGER): OSErr;
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $7018, $A82A;
  331.     {$ENDC}
  332. FUNCTION GetComponentResource(aComponent: Component; resType: OSType; resID: INTEGER; VAR theResource: Handle): OSErr;
  333.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  334.     INLINE $7035, $A82A;
  335.     {$ENDC}
  336. FUNCTION GetComponentIndString(aComponent: Component; VAR theString: Str255; strListID: INTEGER; index: INTEGER): OSErr;
  337.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  338.     INLINE $7036, $A82A;
  339.     {$ENDC}
  340. FUNCTION ResolveComponentAlias(aComponent: Component): Component;
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $7020, $A82A;
  343.     {$ENDC}
  344. {*******************************************************
  345. * Component Instance Management routines
  346. *******************************************************}
  347. FUNCTION GetComponentInstanceStorage(aComponentInstance: ComponentInstance): Handle;
  348.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  349.     INLINE $700C, $A82A;
  350.     {$ENDC}
  351. PROCEDURE SetComponentInstanceStorage(aComponentInstance: ComponentInstance; theStorage: Handle);
  352.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  353.     INLINE $700D, $A82A;
  354.     {$ENDC}
  355. FUNCTION GetComponentInstanceA5(aComponentInstance: ComponentInstance): LONGINT;
  356.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  357.     INLINE $700E, $A82A;
  358.     {$ENDC}
  359. PROCEDURE SetComponentInstanceA5(aComponentInstance: ComponentInstance; theA5: LONGINT);
  360.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  361.     INLINE $700F, $A82A;
  362.     {$ENDC}
  363. FUNCTION CountComponentInstances(aComponent: Component): LONGINT;
  364.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  365.     INLINE $7013, $A82A;
  366.     {$ENDC}
  367. { useful helper routines for convenient method dispatching }
  368. FUNCTION CallComponentFunction(VAR params: ComponentParameters; func: ComponentFunctionUPP): LONGINT;
  369.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  370.     INLINE $70FF, $A82A;
  371.     {$ENDC}
  372. FUNCTION CallComponentFunctionWithStorage(storage: Handle; VAR params: ComponentParameters; func: ComponentFunctionUPP): LONGINT;
  373.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  374.     INLINE $70FF, $A82A;
  375.     {$ENDC}
  376. {$IFC TARGET_CPU_PPC AND TARGET_OS_MAC }
  377. FUNCTION CallComponentFunctionWithStorageProcInfo(storage: Handle; VAR params: ComponentParameters; func: ProcPtr; funcProcInfo: LONGINT): LONGINT;
  378. {$ELSEC}
  379. {$ENDC}
  380.  
  381. FUNCTION DelegateComponentCall(VAR originalParams: ComponentParameters; ci: ComponentInstance): LONGINT;
  382.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  383.     INLINE $7024, $A82A;
  384.     {$ENDC}
  385. FUNCTION SetDefaultComponent(aComponent: Component; flags: INTEGER): OSErr;
  386.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  387.     INLINE $701E, $A82A;
  388.     {$ENDC}
  389. FUNCTION OpenDefaultComponent(componentType: OSType; componentSubType: OSType): ComponentInstance;
  390.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  391.     INLINE $7021, $A82A;
  392.     {$ENDC}
  393. FUNCTION OpenADefaultComponent(componentType: OSType; componentSubType: OSType; VAR ci: ComponentInstance): OSErr;
  394.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  395.     INLINE $702E, $A82A;
  396.     {$ENDC}
  397. FUNCTION CaptureComponent(capturedComponent: Component; capturingComponent: Component): Component;
  398.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  399.     INLINE $701C, $A82A;
  400.     {$ENDC}
  401. FUNCTION UncaptureComponent(aComponent: Component): OSErr;
  402.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  403.     INLINE $701D, $A82A;
  404.     {$ENDC}
  405. FUNCTION RegisterComponentResourceFile(resRefNum: INTEGER; global: INTEGER): LONGINT;
  406.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  407.     INLINE $7014, $A82A;
  408.     {$ENDC}
  409. FUNCTION GetComponentIconSuite(aComponent: Component; VAR iconSuite: Handle): OSErr;
  410.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  411.     INLINE $7029, $A82A;
  412.     {$ENDC}
  413.  
  414. {*******************************************************
  415. *                                                        *
  416. *              Direct calls to the Components                *
  417. *                                                        *
  418. *******************************************************}
  419. {  Old style names }
  420.  
  421. FUNCTION ComponentFunctionImplemented(ci: ComponentInstance; ftnNumber: INTEGER): LONGINT;
  422.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  423.     INLINE $2F3C, $0002, $FFFD, $7000, $A82A;
  424.     {$ENDC}
  425. FUNCTION GetComponentVersion(ci: ComponentInstance): LONGINT;
  426.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  427.     INLINE $2F3C, $0000, $FFFC, $7000, $A82A;
  428.     {$ENDC}
  429. FUNCTION ComponentSetTarget(ci: ComponentInstance; target: ComponentInstance): LONGINT;
  430.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  431.     INLINE $2F3C, $0004, $FFFA, $7000, $A82A;
  432.     {$ENDC}
  433. {  New style names }
  434.  
  435. FUNCTION CallComponentOpen(ci: ComponentInstance; self: ComponentInstance): ComponentResult;
  436.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  437.     INLINE $2F3C, $0004, $FFFF, $7000, $A82A;
  438.     {$ENDC}
  439. FUNCTION CallComponentClose(ci: ComponentInstance; self: ComponentInstance): ComponentResult;
  440.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  441.     INLINE $2F3C, $0004, $FFFE, $7000, $A82A;
  442.     {$ENDC}
  443. FUNCTION CallComponentCanDo(ci: ComponentInstance; ftnNumber: INTEGER): ComponentResult;
  444.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  445.     INLINE $2F3C, $0002, $FFFD, $7000, $A82A;
  446.     {$ENDC}
  447. FUNCTION CallComponentVersion(ci: ComponentInstance): ComponentResult;
  448.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  449.     INLINE $2F3C, $0000, $FFFC, $7000, $A82A;
  450.     {$ENDC}
  451. FUNCTION CallComponentRegister(ci: ComponentInstance): ComponentResult;
  452.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  453.     INLINE $2F3C, $0000, $FFFB, $7000, $A82A;
  454.     {$ENDC}
  455. FUNCTION CallComponentTarget(ci: ComponentInstance; target: ComponentInstance): ComponentResult;
  456.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  457.     INLINE $2F3C, $0004, $FFFA, $7000, $A82A;
  458.     {$ENDC}
  459. FUNCTION CallComponentUnregister(ci: ComponentInstance): ComponentResult;
  460.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  461.     INLINE $2F3C, $0000, $FFF9, $7000, $A82A;
  462.     {$ENDC}
  463. FUNCTION CallComponentGetMPWorkFunction(ci: ComponentInstance; VAR workFunction: ComponentMPWorkFunctionUPP; VAR refCon: UNIV Ptr): ComponentResult;
  464.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  465.     INLINE $2F3C, $0008, $FFF8, $7000, $A82A;
  466.     {$ENDC}
  467.  
  468. {$IFC NOT TARGET_OS_MAC }
  469.         CallComponent is used by ComponentGlue routines to manually call a component function.
  470.      }
  471. FUNCTION CallComponent(ci: ComponentInstance; VAR cp: ComponentParameters): ComponentResult;
  472. {$ENDC}
  473.  
  474. { UPP call backs }
  475.  
  476. CONST
  477.     uppComponentMPWorkFunctionProcInfo = $000003F0;
  478.     uppComponentRoutineProcInfo = $000003F0;
  479.  
  480. FUNCTION NewComponentMPWorkFunctionProc(userRoutine: ComponentMPWorkFunctionProcPtr): ComponentMPWorkFunctionUPP;
  481.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  482.     INLINE $2E9F;
  483.     {$ENDC}
  484.  
  485. FUNCTION NewComponentRoutineProc(userRoutine: ComponentRoutineProcPtr): ComponentRoutineUPP;
  486.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  487.     INLINE $2E9F;
  488.     {$ENDC}
  489.  
  490. FUNCTION CallComponentMPWorkFunctionProc(globalRefCon: UNIV Ptr; header: ComponentMPWorkFunctionHeaderRecordPtr; userRoutine: ComponentMPWorkFunctionUPP): ComponentResult;
  491.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  492.     INLINE $205F, $4E90;
  493.     {$ENDC}
  494.  
  495. FUNCTION CallComponentRoutineProc(VAR cp: ComponentParameters; componentStorage: Handle; userRoutine: ComponentRoutineUPP): ComponentResult;
  496.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  497.     INLINE $205F, $4E90;
  498.     {$ENDC}
  499. { ProcInfos }
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. {$ALIGN RESET}
  507. {$POP}
  508.  
  509. {$SETC UsingIncludes := ComponentsIncludes}
  510.  
  511. {$ENDC} {__COMPONENTS__}
  512.  
  513. {$IFC NOT UsingIncludes}
  514.  END.
  515. {$ENDC}
  516.